import { ObjectDirective, DirectiveBinding } from 'vue'
import permissionHelper from '../permissionHelper'

/**
 * 按钮权限指令
 * 用法：
 * v-button="'create'" - 检查是否有创建按钮权限（使用当前路径）
 * v-button:menuPath="'create'" - 检查指定菜单路径下是否有创建按钮权限
 */
export const button: ObjectDirective = {
  mounted(el: HTMLElement, binding: DirectiveBinding) {
    const { value, arg } = binding
    
    try {
      // 超级管理员可以访问所有内容
      if (permissionHelper.isSuperAdmin()) {
        return // 超级管理员直接返回，不做权限检查
      }
      
      // 非超级管理员需要检查按钮权限
      if (!permissionHelper.hasButtonPermission(value, arg)) {
        el.style.display = 'none'
      }
    } catch (error) {
      console.error('按钮权限指令执行失败:', error)
    }
  }
} 